ga.core.individual
Class IndividualComparator<T extends IIndividual<T>>

java.lang.Object
  extended by ga.core.individual.IndividualComparator<T>
Type Parameters:
T - The generic type of individuals.
All Implemented Interfaces:
java.io.Serializable, java.util.Comparator<T>

 class IndividualComparator<T extends IIndividual<T>>
extends java.lang.Object
implements java.util.Comparator<T>, java.io.Serializable

Comparator for sorting and comparing individuals.

Contains interval comparation method from D. Gong, G. Guo, "Interactive Genetic Algorithms with Interval Fitness of Evolutionary Individuals" .

Since:
31.01.2012
Author:
Stephan Dreyer

Nested Class Summary
private static class IndividualComparator.TestInterval
          This class is just for testing.
 
Field Summary
private  boolean descending
           
private  java.util.Random rnd
           
private static long serialVersionUID
           
 
Constructor Summary
IndividualComparator(boolean descending)
          Create a new comparator.
 
Method Summary
 int compare(T o1, T o2)
           
private  int compareInterval(IIntervalFitness o1, IIntervalFitness o2)
          Compare fitness intervals.
private  int compareNumber(IFitness o1, IFitness o2)
          Simply compare point fitness.
private  double getDominationProbability(IIntervalFitness o1, IIntervalFitness o2)
          Calculates the probability that one interval dominates another.
static void main(java.lang.String[] args)
          A main class to test behavior.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

descending

private final boolean descending

rnd

private final java.util.Random rnd
Constructor Detail

IndividualComparator

public IndividualComparator(boolean descending)
Create a new comparator.

Parameters:
descending - Sort descending, if true.
Since:
11.08.2012
Method Detail

compare

public int compare(T o1,
                   T o2)
Specified by:
compare in interface java.util.Comparator<T extends IIndividual<T>>

compareNumber

private int compareNumber(IFitness o1,
                          IFitness o2)
Simply compare point fitness.

Parameters:
o1 - Fitness 1
o2 - Fitness 2
Returns:
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
Since:
11.08.2012

compareInterval

private int compareInterval(IIntervalFitness o1,
                            IIntervalFitness o2)
Compare fitness intervals. This is a probabilistic method, so it creates no stable order.

Parameters:
o1 - Fitness 1
o2 - Fitness 2
Returns:
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
Since:
11.08.2012

getDominationProbability

private double getDominationProbability(IIntervalFitness o1,
                                        IIntervalFitness o2)
Calculates the probability that one interval dominates another.

Parameters:
o1 - The first interval.
o2 - The second interval.
Returns:
The domination probability.
Since:
11.08.2012

main

public static void main(java.lang.String[] args)
A main class to test behavior.

Parameters:
args - Args
Since:
10.08.2012